﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SourFruit.level.obj;
using Microsoft.Xna.Framework.Graphics;

namespace SourFruit.level
{
    public interface LevelFactory
    {
        /// <summary>
        /// Creates a Platform.
        /// </summary>
        /// <param name="type">The type of platform. This will be casted in the implementing class into a enum that describes the type.</param>
        /// <param name="posX">The x-position of the platform </param>
        /// <param name="posY">The y-position of the platform</param>
        /// <returns>Returns a new platform from the parameters.</returns>
        Platform CreatePlatform(int type, int posX, int posY, Texture2D text, MovingOptions moves);

        Platform CreatePlatform(int type, int posX, int posY, Texture2D[] textStrip, MovingOptions moves);

        /// <summary>
        /// Creates a Collectable.
        /// </summary>
        /// <param name="type">The type of collectable. This will be casted in the implementing class into a enum that describes the type.</param>
        /// <param name="posX">The x-position of the collectable </param>
        /// <param name="posY">The y-position of the collectable</param>
        /// <returns>Returns a new collectable from the parameters.</returns>
        Collectable CreateCollectable(int type, int posX, int posY, Texture2D text); 
    }
}
